// 要对同一对象执行一系列操作，请使用级联（..）
// myObject.someMethod() 表达式的结果是 someMethod 的返回值
// myObject..someMethod() 达式的结果却不是该方法返回值，而是是 myObject 对象的引用

// var button = querySelector('#confirm');
// button?.text = 'Confirm';
// button?.classes.add('important');
// button?.onClick.listen((e) => window.alert('Confirmed!'));

// querySelector('#confirm')
//   ?..text = 'Confirm'
//   ..classes.add('important')
//   ..onClick.listen((e) => window.alert('Confirmed!'));

class BigObject {
  int anInt = 0;
  String aString = '';
  List<double> aList = [];
  bool _done = false;

  void allDone() {
    _done = true;
  }
}

BigObject fillBigObject(BigObject obj) {
  // Create a single statement that will update and return obj:
  return obj
    ..anInt = 1
    ..aString = "String!"
    ..aList = [3.0]
    ..allDone();
}
